RolesGuard.canActivate   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 11
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
cc 2
1
import { Injectable, CanActivate, ExecutionContext} from '@nestjs/common';
2
import { Reflector } from '@nestjs/core';
3
4
@Injectable()
5
export class RolesGuard implements CanActivate {
6
  constructor(private reflector: Reflector) {}
7
8
  public canActivate(context: ExecutionContext): boolean {
9
    const roles = this.reflector.get<string[]>('roles', context.getHandler());
10
11
    if (!roles) {
12
      return true;
13
    }
14
15
    const request = context.switchToHttp().getRequest();
16
17
    return roles.includes(request.user.role);
18
  }
19
}
20